Many conventional magnetic recording systems include partial response or peak-detection magnetic recording channels for data detection. Data detection within a digital communication channel is generally based on periodically sampling the amplitude of the transmitted signal. Enhancements to encoding techniques extend the performance of partial response and peak detection systems by allowing more transitions without degrading data detection.
Modulation codes may be employed to achieve high transition densities within magnetic recording systems. High transition densities allow more frequent timing and gain control updates, which, in turn, result in a lower required channel input signal to noise ratio (SNR) for a given magnetic recording channel performance. In a typical system, data are first encoded with an error correction code, and then encoded with a modulation code using a modulation encoder and precoder before the encoded data are written to a recording channel of a magnetic recording media, such as disk or tape. When the magnetic recording channel is read from the media by a head, an equalizer equalizes the readback signal to a target partial response (PR). The equalized signal may then be applied to a maximum likelihood (ML) sequence detector, also known as a Viterbi detector, to reconstruct the modulation-coded encoded data signal. The reconstructed signal may then be subject to inverse coding operations, such as unprecoding, modulation decoding, and then error correction decoding.
The modulation encoder and precoder are employed to provide that timing recovery circuitry and gain control circuitry as used with the equalizer receive non-zero or other active information frequently, without degrading the efficacy of the ML sequence detector to correctly detect the sequence for a given PR. The modulation encoder receives a group of M bits and encodes the M bits as a group of N channel bits such that the group of N channel bits satisfy a given constraint. Several properties are desirable for a modulation code for ease of implementation of a modulation encoder. First, the modulation code should be a block code where no apriori knowledge of bits or other bit group information outside the given group of M bits and N bits is required. Second, the code should have a high rate or coding density of M/N, and third, the code should have good constraints. Fourth, the code should be efficiently implemented in a logic circuit, and fifth, the code should not affect the efficacy of the ML sequence detector.
Run length limited (RLL) block codes may be typically used for the modulation code, and these RLL block codes may be characterized by the coding density of M/N, where M is an integer, which is usually either a multiple or submultiple of the number 8, and N is a larger integer than M. M data bits are coded into N symbols, or channel bits, with the constraint that M be a multiple or submultiple of 8 arising from the outer, error correcting code working on a byte by byte basis. Decoding a block of channel bits which contains one or more errors contaminates an entire block; accordingly, alignment of block boundaries with byte boundaries reduces the number of contaminated bytes.
RLL block codes are also characterized by run length constraints, labeled as (d,G/I), where d is the minimum number of zeros between ones, G is the maximum number of zeros, between ones, and I is the maximum number of zeros between ones in odd/even substrings. For high density codes, d=0, while the G constraint ensures sufficient transitions for the timing recovery and gain control functions. Depending on the PR, the I constraint, and/or the G constraint, avoids quasi-catastrophic sequences which may reduce the effectiveness of ML sequence detectors.
The I constraint is generally only useful for some PR channels, an example of which is a channel with a partial response transfer function of the form 1-D.sup.2, also known as a PR4 channel. Other PR channels may be used; for example; an EPR4 channel, which is characterized by the channel's partial response transfer function, or polynomial, being 1+D-D.sup.2 -D.sup.3, may be used. For the EPR4 channel, the G constraint itself, in conjunction with a 1/(1.sym.D.sup.2) precoder, provides sufficient timing and/or gain control information while limiting the quasi-catastrophic sequences. PRML magnetic read channels of the prior art have employed a popular 8/9 code with constraints (0,4,4), such as is described in U.S. Pat. No. 4,707,681, entitled METHOD AND APPARATUS FOR IMPLEMENTING OPTIMUM PRML CODES, to Eggenberger et al., and which is incorporated herein by reference. This lower rate code has been extended to a higher rate of 16/17, disclosed in U.S. Pat. No. 5,604,497, entitled APPARATUS AND METHOD FOR INCREASING DENSITY OF RUN LENGTH LIMITED BLOCK CODES WITHOUT INCREASING ERROR PROPAGATION, to Jeffrey L. Sonntag, and which is incorporated herein by reference. These types of codes yield a high rate but at the expense of degrading the G and I constraints, which become, for example, (0, G=12, I=8). Further, rate 16/17 codes have been constructed which are not derived from a lower rate 8/9 code, and this construction is described in, for example, U.S. Pat. No. 5,635,933, entitled RATE 16/17 (D=0, G=6/I=7) MODULATION CODE FOR A MAGNETIC RECORDING CHANNEL, to Fitzpatrick et al., which is incorporated herein by reference.